package com.mango.leet.code.easy;

/**
 * 125. 验证回文串
 */
/**
 * 给定一个字符串，验证它是否是回文串，只考虑字母和数字字符，可以忽略字母的大小写。
 *
 * 说明：本题中，我们将空字符串定义为有效的回文串。
 *
 *  
 *
 * 示例 1:
 *
 * 输入: "A man, a plan, a canal: Panama"
 * 输出: true
 * 解释："amanaplanacanalpanama" 是回文串
 * 示例 2:
 *
 * 输入: "race a car"
 * 输出: false
 * 解释："raceacar" 不是回文串
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/valid-palindrome
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */

/**
 * @Author: mango
 * @Date: 2022/4/10 9:33 下午
 */
public class LC125_ValidPalindrome {
    public static void main(String[] args) {
        System.out.println((int)'a');
        System.out.println((int)'z');
        System.out.println((int)'A');
        System.out.println((int)'Z');
        System.out.println((int)'0');
        System.out.println((int)'9');
        System.out.println((int)'1');
    }
    class Solution {
        public boolean isPalindrome(String s) {
            // 收集字母和数字
            String str = "";
            for(int i=0;i<s.length();i++){
                int ac = s.charAt(i);
                // 字母
                if(ac >= 65 && ac<= 90){
                    str += s.charAt(i);
                }
                if(ac >= 97 && ac<= 122){
                    str += s.charAt(i);
                }
                // 数字
                if(ac >= 48 && ac<= 57){
                    str += s.charAt(i);
                }
            }
            // 全部小写
            str = str.toLowerCase();
            int n = str.length();
            int left = 0, right = n-1;
            while(left <= right){
                if(str.charAt(left++) != str.charAt(right--)){
                    return false;
                }
            }
            return true;
        }
    }
}
